package xymt.novaway.system.annotation;

import java.lang.annotation.*;

/**
 * 数据权限过滤注解
 * 用于标记需要进行数据权限控制的方法
 *
 * @author NovaWay
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataScope {

    /**
     * 权限标识（如：system:user:list）
     * 用于匹配具体的权限配置，系统将根据此标识动态查询所有相关的过滤字段配置
     */
    String permission();

    /**
     * 表别名（用于多表关联查询时指定表别名）
     */
    String tableAlias() default "";

    /**
     * 是否启用高级字段权限
     * 如果为true，将使用高级字段权限配置进行过滤
     */
    boolean enableAdvancedFieldPermission() default true;

    /**
     * 数据权限字段名称（如：dept_id, user_id等）
     * 此参数已弃用，系统将从数据库配置中动态获取过滤字段
     * @deprecated 请通过数据库配置sys_role_data_scope_config表来设置过滤字段
     */
    @Deprecated
    String fieldName() default "";
}